.. _cmmCmpTrgHigh_Start: cmmCmpTrgHigh_Start ============================ ---------------------------- SYNOPSIS ``````````` .. code-block:: none VT_I4 cmmCmpTrgHigh_Start( [in] VT_I4 Axis ) DESCRIPTION ``````````````` - 특정 축의 고속위치비교출력 기능을 시작합니다. 이 함수가 호출된 이후에는 cmmCmpTrgHigh_WriteData() 함수를 통하여 해당 축에 고속위치비교출력 회로모듈을 할당하고, 초기 위치와 트리거 간격을 적절하게 설정하였다면, 모션의 위치가 이송될 때 초기 위치부터 트리거 간격의 위치를 지날 때마다 트리거 신호가 출력됩니다. PARAMETER ``````````` - Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다. REFERENCE ``````````` - 고속위치비교출력 기능도 CMP 출력을 사용하므로 카운터소스, 위치비교 방식 등의 설정을 하는 cmmCmpTrgSetConfig() 함수는 일반 위치비교 출력 기능과 마찬가지로 적용됩니다. \ - 출력 펄스의 폭은 cmmCfgSetMioProperty () 함수를 사용하여 설정합니다. 이때 PropID 매개 변수에 cmCMP_PWIDTH 를 지정하고 펄스폭을 설정합니다. cmmCfgSetMioProperty (축번호, cmCMP_PWIDTH, 펄스폭매개 변수) 의 형태로 설정합니다. 펄스폭의 기본 설정은 Command 출력의 한 주기에 해당하는 펄스가 출력되는 것입니다. .. Warning:: 이 함수는 COMI-LX504a 제품에 대해서만 사용 가능한 함수입니다. RETURN VALUE ````````````` .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 cmERR_NONE, 수행 성공 EXAMPLE ````````` - 아래의 예제에서는 X 축을 0 에서 50000 좌표로 이동시키면서 피드백 위치가 1000 부터 시작하여 100 의 간격 마다 트리거 신호를 출력하도록 하는 예제입니다. 다시 말해서 피드백 위치가 1000, 1100, 1200, 1300, … 이 될 때마다 트리거 펄스가 출력되도록 하는 예입니다. .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #define AXIS 12 // 축번호는 통합 축 번호 사용함을 예시하기 위해서 12 번 축으로 하였으며 다른 뜻은 없음 #define CMPH_No 0 // CMPH_No 는 통합축 번호와 관계없이 해당 축이 속한 장치내에서 제공하는 2 개의 모듈 중에 // 하나를 지정해야 한다. 따라서 이 값은 항상 0 또는 1 중의 하나의 값이어야 한다. cmmSxMoveTo(AXIS, 0, cmFALSE); // 비교기 설정: 이 것은 다른 일반 위치비교출력 기능과 같습니다 // cmmCmpTrgSetConfig (AXIS, cmCNT_FEED, cmEQ_BIDIR) // AXIS 축에 고속위치비교출력 기능을 할당하고 초기 위치와 간격을 설정한다. // cmmCmpTrgHigh_WriteData (AXIS, CMPH_No, 1000, 100); // 고속위치비교출력 기능 시작 // cmmCmpTrgHigh_Start(AXIS); // X 축을 50000 포인트로 이동한다. 이동할 때 피드백 위치가 1000, 1100, 1200,… 일때 트리거 신호 출력됨 // cmmSxMoveTo(AXIS, 50000, cmFALSE); cmmCmpTrgHigh_Stop(AXIS) ; // 고속위치비교 기능 종료 .. code-block:: none :linenos: Visual Basic Const AXIS = 12 ‘축번호는 통합 축 번호 사용함을 예시하기 위해서 12 번 축으로 하였으며 다른 뜻은 없음 Const CMPH_No = 0 ‘ CMPH_No 는 통합축 번호와 관계없이 해당 축이 속한 장치내에서 제공하는 2 개의 모듈 중에 ‘ 하나를 지정해야 한다. 따라서 이 값은 항상 0 또는 1 중의 하나의 값이어야 한다. Call cmmSxMoveTo(AXIS, 0, cmFALSE) ‘ 비교기 설정: 이 것은 다른 일반 위치비교출력 기능과 같습니다. Call cmmCmpTrgSetConfig (AXIS, cmCNT_FEED, cmEQ_BIDIR) ‘ AXIS 축에 고속위치비교출력 기능을 할당하고 초기 위치와 간격을 설정한다. Call cmmCmpTrgHigh_WriteData (AXIS, CMPH_No, 1000, 100) ‘ 고속위치비교출력 기능 시작 Call cmmCmpTrgHigh_Start(AXIS) ‘ X 축을 50000 포인트로 이동한다. 이동할 때 피드백 위치가 1000, 1100, 1200,… 일때 트리거 신호 출력됨 Call cmmSxMoveTo(AXIS, 50000, cmFALSE) Call cmmCmpTrgHigh_Stop(AXIS) ‘ 고속위치비교 기능 종료 .. code-block:: none :linenos: Delphi Const AXIS = 12; // 축번호는 통합 축 번호 사용함을 예시하기 위해서 12 번 축으로 하였으며 다른 뜻은 없음 Const CMPH_No = 0;// CMPH_No 는 통합축 번호와 관계없이 해당 축이 속한 장치내에서 제공하는 2 개의 모듈 중에 // 하나를 지정해야 한다. 따라서 이 값은 항상 0 또는 1 중의 하나의 값이어야 한다. cmmSxMoveTo(AXIS, 0, cmFALSE); // 비교기 설정: 이 것은 다른 일반 위치비교출력 기능과 같습니다 // cmmCmpTrgSetConfig(AXIS, cmCNT_FEED, cmEQ_BIDIR); // AXIS 축에 고속위치비교출력 기능을 할당하고 초기 위치와 간격을 설정한다. // cmmCmpTrgHigh_WriteData(AXIS, CMPH_No, 1000, 100); // 고속위치비교출력 기능 시작 // cmmCmpTrgHigh_Start(AXIS); // X 축을 50000 포인트로 이동한다. 이동할 때 피드백 위치가 1000, 1100, 1200,… 일때 트리거 신호 출력됨 // cmmSxMoveTo(AXIS, 50000, cmFALSE); cmmCmpTrgHigh_Stop(AXIS) ; // 고속위치비교 기능 종료 .. seealso:: :ref:`cmmCmpTrgHigh_WriteData`, :ref:`cmmCmpTrgHigh_Stop`, :ref:`cmmCmpTrgSetConfig`, :ref:`cmmCfgSetMioProperty`